home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / PBLIB1 / DOC / TPRINT.DOC < prev    next >
Text File  |  1994-01-04  |  8KB  |  215 lines

  1. \space 20
  2. \CENTER on
  3. TPRINT PROGRAM DOCUMENTATION
  4.  
  5. (and test file)
  6. \space 20
  7.  
  8. \CENTER off
  9.  
  10.                                            Howard Richoux
  11.                                            6721 Shamrock Rd.
  12.                                            Lincoln, NE  68506-2821
  13.                                            (402) 488-5867
  14. \new
  15.  
  16. \CENTER TPRINT 3.00
  17. \join on
  18.  
  19.      This program is an old-fashioned, command based text
  20. processor.  Formatting commands are placed in the clear in the
  21. text file, rather than hidden as invisible character sequences.
  22. One of the benefits is that you can see exactly what formatting is
  23. going to be done.  Also, it is pretty easy to generate some of these
  24. commands programatically, in report programs, and use the output for
  25. multiple purposes.
  26.  
  27. \join off
  28. Commands:
  29. \indent 10
  30. OFFSET n        -  left margin for everything         ( 0 - 20 )
  31. INDENT n        -  Sets an additional offset for text ( 0 - 20 )
  32. CENTER ON/OFF   -  Centers all lines from ON to OFF
  33. CENTER text     -  Centers this text
  34. SPACE n         -  Writes n blank lines
  35. NEW             -  Goes to new page
  36. TRIGGER n       -  n is the decimal equivalent of an ASCII char
  37.                    default is backslash (92)
  38. \indent 0
  39.  
  40. Headers and Footers:
  41. \indent 10
  42. HEADERn 'spec'  -  Sets a new header specification (details later)
  43. FOOTERn 'spec'  -  Sets a new footer specification (details later)
  44. \indent 0
  45.  
  46. Special Commands:  (Debugging)
  47. \indent 10
  48. DEBUG ON/OFF    -  Sets a flag for program to print intermediate steps
  49. ECHO ON/OFF     -  Echoes the TPRINT commands encountered
  50. \indent 0
  51. \join on
  52.  
  53.      These are typically set in a TPRINT.CFG file.  There are (optionally)
  54. two of these files.  The first resides on the same directory as the
  55. TPRINT.EXE file.  This would be used to hold general defaults, which
  56. will apply to all uses of the program.  These can be overridden by a
  57. TPRINT.CFG on the current directory.  Even these can be overridden by
  58. placing the same thing on the command line following the file name.  This
  59. same nested configuration file applies to most utilities I write.  It
  60. costs 5-10k in code size, but the added flexibility is extremely useful.
  61. Because of the way it is implemented, you could duplicate TPRINT.exe as
  62. TPRINT2.exe(or xyz.exe), change parameters in the TPRINT2.cfg files and have
  63. a very different program.
  64. \join off
  65.  
  66. \HEADER1 '@LABEL1|@FILE|Page @PAGE'
  67. \NEW
  68. \CENTER TPRINT Box Commands
  69.      This is a reasonable, though not too elegant, method of adding
  70. line drawing commands to your text.  The trigger character is the <tilde>
  71. ASCII 126.  You use them like quote marks to bracket characters you want
  72. converted to line draw characters.  Since TPRINT is printing this document,
  73. I will replace the <tilde>s on this page with <hat>s (^).
  74.  
  75. This:
  76. \INDENT 10
  77.  
  78.                        This is a Box
  79.  
  80. Everything         ^L---------M-------R^     Mnemonics:
  81. outside            ^|         |       |^     L = Upper Left
  82. the                ^|         |       |^     M = Upper Middle
  83. squiggles          ^|         |       |^     R = Upper Right
  84. is normal          ^S---------+-------s^     S = Left Side
  85. text.              ^|         |       |^     + = center
  86.                    ^|         |       |^     s = right side
  87.                    ^|         |       |^     l = lower left
  88.                    ^l---------m-------r^     m = lover middle
  89.                                              r = lower right
  90.                    ^1222222222222222223^
  91.  
  92.  
  93. \INDENT 0
  94.  
  95. Becomes:
  96.  
  97. \INDENT 10
  98.                        This is a Box
  99.  
  100. Everything         ~L---------M-------R~     Mnemonics:
  101. outside            ~|         |       |~     L = Upper Left
  102. the                ~|         |       |~     M = Upper Middle
  103. squiggles          ~|         |       |~     R = Upper Right
  104. is normal          ~S---------+-------s~     S = Left Side
  105. text.              ~|         |       |~     + = center
  106.                    ~|         |       |~     s = right side
  107.                    ~|         |       |~     l = lower left
  108.                    ~l---------m-------r~     m = lover middle
  109.                                              r = lower right
  110.                    ~1222222222222222223~
  111.  
  112.  
  113. \INDENT 0
  114.  
  115. \HEADER1 '@LABEL1|Quoted Strings Section|Page @PAGE'
  116. \NEW
  117. \CENTER TPRINT Headers and Footers
  118.  
  119.      With any kind of luck, the header at the top of the page had
  120. the center portion replaced.  The specification for the top page header
  121. was:
  122.      HEADER1 '@LABEL1|Quoted Strings Section|Page @PAGE'
  123.  
  124. Pages are laid out as follows:
  125.                      Default Specification
  126.      HEADER1         '@LABEL1|@FILE|'
  127.      HEADER2         ' '
  128.      HEADER3         ''
  129.      <text>
  130.      FOOTER2         ''
  131.      FOOTER1         '||Page @PAGE'
  132.  
  133.      A specification is of the form:  '<spec>|<spec>|<spec3>' where
  134. the specs define the left, center and right portions respectively.  The
  135. left section is left justified, the right section is right justified, and
  136. the center section is centered, the '|' are invisible.  These vary by the
  137. defined page width.
  138.  
  139.      The currently defined elements for headers and footers are as
  140. follows:
  141. \JOIN OFF
  142. \INDENT 10
  143.  
  144. @DATE     - current date as mm/dd/yy
  145. @TIME     - current time as hh:mm
  146. @DTIME    - date and time as mm/dd/yy hh:mm
  147. @PAGE     - current page number
  148. @PROGID   - program ID of program making listing
  149. @FILE     - current file being operated on
  150. @LABEL1   - TPRINT defines as datetime of current file
  151. @LABEL2   - undefined - set with param
  152. @LABEL3   - undefined - set with param
  153.    Anything else is treated as literal characters and printed in the
  154. appropriate place.
  155.  
  156. \INDENT 0
  157. \JOIN ON
  158.      This group of variables is not random and is implemented in the
  159. list_object level 1.  Any program using the level 1 list_object can use these.
  160. It is simple to add other variables, but since this is a rather low level
  161. in the program, code added to the list object will propagate to most other
  162. programs using the object.  The DOS unit code added to the list_object was the
  163. reason that the @FDATE variable (date time of current file) was removed from
  164. the list_object and added to the TPRINT program.  Similarly, the list_object was
  165. divided into 2 levels to save about 5k of code for programs not needing headers,
  166. footers, word-wrap and the like.  Both levels provide the basic interchangeability
  167. between console, printer and text file.
  168.  
  169. \HEADER1 '@LABEL1|@FILE|'
  170. \HEADER2 ' '
  171. \NEW
  172.  
  173.      The JOIN command initiates a word-wrap function until turned off.
  174. this ignores the end of lines in the source text, and wraps the text at
  175. blank spaces in the words.
  176.  
  177. This isn't perfect, but allows some page formatting.
  178. Blocks are terminated at a blank line.  Here is the same text re-done with
  179. a JOIN 40 (and an INDENT 10) to make a 40 char wide column.
  180.  
  181. \INDENT 10
  182. \JOIN 40
  183.      The JOIN command initiates a word-wrap function until turned off.
  184. this ignores the end of lines in the source text, and wraps the text at
  185. blank spaces in the words.
  186.  
  187. This isn't perfect, but allows some page formatting.
  188. Blocks are terminated at a blank line.  Here is the same text re-done with
  189. a JOIN 40 to make a 40 char wide column.
  190.  
  191. \JOIN OFF
  192. \INDENT 0
  193.  
  194. \NEW
  195. \center Sourcing Other Text Files
  196.  
  197. \JOIN 65
  198. \JOIN ON
  199.      The SOURCE command allows a second level of files to be read and
  200. merged into a single document.  At present, only 2 levels are allowed, so
  201. SOURCE commands in sourced in files are ignored.  I intend to implement
  202. sourcing of file sections.  A file section would be designated by a
  203. selectable trigger such as "\SECTION <name>" or "?sect <name>" and would end
  204. at the next section trigger.
  205.  
  206. Here is source from another file (tprint1.doc):
  207.  
  208. \source tprint1.doc
  209.  
  210.  
  211.  
  212.  
  213. \JOIN OFF
  214. \INDENT 0
  215. THE END